介绍
Sanic 是一个 Python Web 服务器和 Web 框架,可以快速进行开发。它允许使用 Python 3.5 中添加的 async / await 语法,这使您的代码无阻塞且快速。 Sanic 项目由社区维护 ,目标是提供一种易于构建、扩展并且简单启动和运行的高性能 HTTP 服务器。
使用情况
技术社区
从国内某技术社区 2018 年 11 月的一篇名为 “请教 Python 用什么框架写 API 比较好” 的文章中,进行了一个简要的分析。在网友的回复中,共提到三种语言,分别为 Python,PHP,Go。其中 Python Web 框架中,推荐排名第一的为 Flask(Flask-RESTful),第二的为 Django(Django REST framework),排名第三的为 Tornado,其他的还有 Falcon,Responder,Sanic,Bottle,Vibora,Apistar,Cherrypy,Starlette…
部分网友考虑到 Python 部署问题和性能问题,选择了 PHP 和 Go。
搜索引擎
从搜索引擎角度,将会对 Sanic 关键字在百度(国内)和 Google(国外)进行一个简要的分析,用此来反映国内外的用户数量,分析结果仅作参考。
百度
Sanic 关键字搜索指数(百度),如下图所示:
Sanic,Django,Flask,Tornado,Falcon 关键字搜索指数(百度),如下图所示:
Sanic 关键字搜索指数(Google),如下图所示:
Sanic,Django,Flask,Tornado,Falcon 关键字搜索指数(Google),如下图所示:
从百度的搜索量来看,在 2015 年 6 月出现过一次爆发式的增长,而在这之后急速下降,直到 2017 年 4 月才呈上升趋势。为何在 2015 年 6 月出现过一次爆发式的增加,可能和 Python 3.5 的发布(2014 年 9 月)有关。
谷歌的趋势没有出现过爆发增长的情况,最高点时间在 2015 年 3 月左右,和国内时间差不多。但是在这之后和国内呈现出相反的趋势,国外一直呈现出下滑的趋势,国内一直呈现出上升趋势。
维护情况
Sanic 现在由社区运营,版本发布遵循 CalVer 。每年发布4 个版本(三月,六月,九月,十二月)。目前最新版本为 19.03.1,最新 LST 版本为 18.12。社区采用 “RM” 职位的方式轮流任职,“RM” 负责主持在这期间的问题修复和功能增加等工作。Sanic 希望每一位开发人员都能参与到他们的维护当中,如果感兴趣可以加入 sanic-dev 或者 社区 。
简单教程
1 | pip3 install sanic |
1 | from sanic import Sanic |
拓展
官方拓展
Sanic OpenAPI: 为 Sanic API 提供 Swagger UI API 文档
Sanic-Docker:官方提供了运行在 Python 3.7 之上,并且预安装了最新的 Sanic LTS 版本。平台为 Alpine Linux。
其他拓展
aiomysql:aiomysql 是一个用于从 asyncio 访问 MySQL 数据库的库,调研发现 SqlAlchemy 也支持 aiomysql,其次还有 TortoiseORM,二者都尝试了一下,体验都没有那么好,从 github 使用人数来看,还处于起步阶段。
aioredis:一个支持 asyncio 的库。